package com.aasa.siccosap.pagonet.logic;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

import org.apache.log4j.Logger;

import com.aasa.siccosap.bean.ClienteBean;
import com.aasa.siccosap.bean.ValorCombo;
import com.aasa.siccosap.dao.accesoDaoException;
import com.aasa.siccosap.pagonet.bean.Documento;
import com.aasa.siccosap.pagonet.dao.PagoNetDao;

public class PagoNetLogic {

	public PagoNetDao objpb_pagoNetDao;
	static Logger logger = Logger.getLogger(PagoNetLogic.class);                                                   
	
	public PagoNetLogic() {
		try {
			objpb_pagoNetDao = new PagoNetDao();
		} catch (accesoDaoException e) {
			logger.error("Error PagoNetLogic - Constructor", e);
			e.printStackTrace();
		}
	}
	
	public List<ValorCombo> listarRegiones() throws Exception{
		List<ValorCombo> objl_listaRegiones = new ArrayList<ValorCombo>();
		objl_listaRegiones = objpb_pagoNetDao.listarRegiones();
		return objl_listaRegiones;
	}
	
	public List<ValorCombo> listarTipoDocumentosPagar(String strl_tipoBusqueda) throws Exception{
		List<ValorCombo> objl_listaTipoDocs = new ArrayList<ValorCombo>();
		objl_listaTipoDocs = objpb_pagoNetDao.listarTipoDocsPagar(strl_tipoBusqueda);
		return objl_listaTipoDocs;
	}
	
	public List<Documento> buscarDocumentosCAASA(Documento objl_documento) throws Exception{
		List<Documento> objl_listaDocumentos = new ArrayList<Documento>();
		objl_listaDocumentos = objpb_pagoNetDao.buscarDocumentoCAASA(objl_documento);
		return objl_listaDocumentos;
	}
	
	public List<Documento> buscarDocumentosCliente(Documento objl_documento) throws Exception{
		List<Documento> objl_listaDocumentos = new ArrayList<Documento>();
		objl_listaDocumentos = objpb_pagoNetDao.buscarDocumentoCliente(objl_documento);
		return objl_listaDocumentos;
	}
	
	public List<Documento> listarOperacionesFavor(Documento objl_documento) throws Exception{
		List<Documento> objl_listaOperacionesFavor = new ArrayList<Documento>();
		objl_listaOperacionesFavor = objpb_pagoNetDao.listarOperacionesFavor(objl_documento);
		return objl_listaOperacionesFavor;
	}
	
	public List<Documento> listarOperacionesFavorResumidas(Documento objl_documento) throws Exception{
		List<Documento> objl_listaOperacionesFavor = new ArrayList<Documento>();
		objl_listaOperacionesFavor = objpb_pagoNetDao.listarOperacionesFavorResumidas(objl_documento);
		return objl_listaOperacionesFavor;
	}
	
	public BigDecimal obtenerPercepcionCLiente(String strl_codCliente) throws Exception{
		return objpb_pagoNetDao.obtenerPercepcionCliente(strl_codCliente);
	};
	
	public String generarNumeroOperacion() throws Exception{
		return objpb_pagoNetDao.generarNumeroOperacion();
	};
	
	public ClienteBean obtenClientePagoNet(String codigo){
		ClienteBean cliente = objpb_pagoNetDao.obtenClientePagoNet(codigo);
		return cliente;		
	}

	public String obtenerCorrelativoDocumento( String strDocumento ) {
		int iCorrelativo = objpb_pagoNetDao.obtenerCorrelativoDocumento( strDocumento );
		iCorrelativo++;
		int iSize = String.valueOf( iCorrelativo ).length();
		String str =  strDocumento + ( iSize == 1 ? "0" + iCorrelativo : iCorrelativo );
		System.out.println( "Numero correlativo ->" + str );
		return str;
	}	
}
